package career_handler

import (
	"peilian-api/app/global/bind"
	"peilian-api/app/global/errors"
	"peilian-api/app/model"
	"peilian-api/app/services/career_service"
	"peilian-api/utils/format"

	"github.com/gin-gonic/gin"
)

// 获取职业列表
func Groups(ctx *gin.Context) {
	var careerTheme model.CareerTheme
	if err := bind.ShouldBinding(ctx, &careerTheme); err != nil {
		format.NewResponseJson(ctx).Err(500, err.Error(), []string{})
		return
	}
	careers, err := career_service.GetCareerLabel(ctx, careerTheme.Theme)
	if err != nil {
		format.NewResponseJson(ctx).Err(500, err.Error(), []string{})
		return
	}

	format.NewResponseJson(ctx).SuccessObj(careers)
}

// 获取职业列表
func List(ctx *gin.Context) {
	careers, err := career_service.GetCareer(ctx)
	if err != nil {
		format.NewResponseJson(ctx).Err(500, err.Error(), []string{})
		return
	}
	format.NewResponseJson(ctx).SuccessObj(careers)
}

// 获取职业列表
func PageList(ctx *gin.Context) {
	var req career_service.GetCareerPageReq
	if err := bind.ShouldBinding(ctx, &req); err != nil {
		format.NewResponseJson(ctx).Err(500, err.Error(), []string{})
		return
	}

	careers, err := career_service.GetCareerPage(ctx, req)
	if err != nil {
		format.NewResponseJson(ctx).Err(500, err.Error(), []string{})
		return
	}
	format.NewResponseJson(ctx).SuccessObj(careers)
}

// 获取用户的职业列表
func GetUserSpecialCareerList(ctx *gin.Context) {
	cst, err := new(career_service.CareerService).GetUserCareerList(ctx)
	if err != nil {
		format.NewResponseJson(ctx).Err(200, err.Err.Error(), []string{})
		return
	}
	format.NewResponseJson(ctx).SuccessObj(cst)
}

// 保存用户的职业列表
func SaveUserSpecialCareer(ctx *gin.Context) {
	var arr model.Sids
	if err := bind.ShouldBinding(ctx, &arr); err != nil {
		format.NewResponseJson(ctx).SuccessObjMsg(errors.PublicErrorCode, errors.ParamBindError)
		return
	}
	err := new(career_service.CareerService).SaveUserSpecialCareer(ctx, arr.Ids)
	if err != nil {
		format.NewResponseJson(ctx).SuccessObjMsg(30002, err.Err.Error())
		return
	}
	format.NewResponseJson(ctx).SuccessObj(struct{}{})
}
